package main

import "fmt"

type Sayer interface {
	Say()
}
type Cat struct {
}

func (c Cat) Say() {
	//TODO implement me
	fmt.Println("喵喵喵")
}

func (d *Dog) Say() {
	fmt.Println("汪汪汪")
}

type Dog struct {
}

type WashingMachine interface {
	Wash()
	Dry()
}

type Dryer struct {
}

func (d Dryer) Dry() {
	fmt.Println("甩一甩")
}

type haier struct {
	Dryer
}

func (h haier) Wash() {
	fmt.Println("洗刷刷")
}
func main() {
	var washingMachine WashingMachine
	washingMachine = haier{}
	washingMachine.Wash()

	//var x Sayer
	//x = Cat{}
	//x.Say()
	//x = &Dog{}
	//x.Say()

	//m := make(map[string]int)
	//m["a"] = 1
	//m["b"] = 2
	//fmt.Println(m)
}
